Saltar al contenido principal

Configuración de MQTT

Esta guía le muestra cómo configurar la comunicación MQTT entre su cámara OV80i y dispositivos externos utilizando Node-RED. MQTT permite una mensajería ligera y confiable para aplicaciones IoT y comunicación remota entre dispositivos.

Cuándo usar la Comunicación MQTT: Integración de dispositivos IoT, sistemas de monitoreo remoto, patrones de publicación/suscripción, entornos de baja banda ancha, redes de sensores distribuidas, o cuando necesite entrega confiable de mensajes con reconexión automática.

Prerrequisitos

  • Sistema de cámara OV80i configurado y conectado
  • Conectividad de red entre la cámara y el broker MQTT
  • Broker MQTT disponible (local o basado en la nube)
  • Comprensión básica de los conceptos de MQTT (topics, publish/subscribe)
  • Receta activa configurada en la cámara

Visión general de MQTT

Conceptos Clave de MQTT:

  • Broker: Servidor central que enruta mensajes entre clientes
  • Topics: Categorías de mensajes (p. ej., "camera/status", "commands/trigger")
  • Publish: Enviar mensajes a un topic
  • Subscribe: Recibir mensajes de un topic
  • QoS: Niveles de Calidad de Servicio (0, 1, 2)

Paso 1: Verificar la Configuración de Red

1.1 Verificar la Configuración de Red de la Cámara

  1. Navegar a Configuración del Sistema
  2. Anotar la dirección IP de la cámara (p. ej., 10.250.0.100)
  3. Verificar la conectividad de red hacia el broker MQTT

1.2 Requisitos del Broker MQTT

Asegure la accesibilidad del broker MQTT:

  • Misma red: La cámara debe alcanzar la dirección IP del broker
  • Acceso al puerto: Puerto MQTT por defecto 1883 (o 8883 para TLS)
  • Autenticación: Nombre de usuario/contraseña si el broker lo requiere
  • Firewall: Permitir tráfico MQTT en los puertos requeridos

1.3 Requisitos de Red

ComponenteDirección IPPuertoNotas
Cámara10.250.0.100N/ADebe alcanzar al broker
Broker MQTT10.250.0.2001883Puerto MQTT estándar
Dispositivos Cliente10.250.0.xxxVariableCualquier dispositivo suscriptor

Paso 2: Acceder al Editor de Node-RED

2.1 Navegar a IO Block

  1. Abra su receta activa en Recipe Editor
  2. Haga clic en Configure IO o seleccione IO Block" en el menú de migas de pan para entrar al editor de Node-RED

2.2 Verificar que los nodos MQTT estén disponibles

Verifique la paleta de Node-RED para nodos MQTT:

  • mqtt in - Suscribirse a temas MQTT
  • mqtt out - Publicar a temas MQTT

Punto de control: Debería ver nodos MQTT en la sección Red del panel izquierdo.

Paso 3: Configurar la Conexión al Broker MQTT

3.1 Agregar Configuración del Broker MQTT

  1. Arrastre el nodo "mqtt in" al lienzo (para la configuración inicial)
  2. Haga doble clic en el nodo para abrir la configuración
  3. Haga clic en el icono de lápiz junto al campo Servidor
  4. Haga clic en "Add new mqtt-broker"

3.2 Configurar Ajustes del Broker

Configuración básica del Broker:

AjusteValorDescripción
NombreBroker MQTT de la CámaraIdentificador descriptivo
Servidor192.168.0.200Dirección IP del broker MQTT
Puerto1883Puerto MQTT estándar
ProtocoloMQTT v3.1.1Versión recomendada
ID de Cliente(generado automáticamente)Deje en blanco para generación automática

3.3 Configuración de Autenticación (Si es necesario)

Si el broker requiere autenticación:

ConfiguraciónDescripción
Nombre de usuarioNombre de usuario del broker MQTT
ContraseñaContraseña del broker MQTT
Usar TLSHabilitar para conexiones seguras (puerto 8883)

3.4 Configuraciones Avanzadas

Opciones de Conexión:

ConfiguraciónValor RecomendadoDescripción
Intervalo keep-alive60 segundosIntervalo de latido
Sesión LimpiaVerdaderoIniciar cada conexión desde cero
Conexión automáticaVerdaderoReintento de conexión automático

3.5 Guardar Configuración del Broker

  1. Haga clic en "Agregar" para guardar la configuración del broker
  2. Haga clic en "Listo" para cerrar la configuración del nodo
  3. La configuración del broker ya está disponible para todos los nodos MQTT

Paso 4: Configurar MQTT In (Suscripción)

4.1 Configurar Nodo MQTT In

  1. Seleccione el nodo "mqtt in" que añadió
  2. Haga doble clic para configurar
  3. Configurar las configuraciones de suscripción:

4.2 Configuración de MQTT In

Configuraciones de Suscripción:

ConfiguraciónValor de ejemploDescripción
ServidorCamera MQTT BrokerSeleccionar broker configurado
Temacamera/commandsTema al que suscribirse
QoS0Calidad de entrega de mensajes
Salidaauto-detectFormato de mensajes
NombreEscucha de comandosIdentificador de nodo

4.3 Convenciones de Nombres de Tema

Estructura de temas recomendada:

PropósitoEjemplo de TemaUso
Comandoscamera/commandsRecibir comandos de control
Solicitudes de estadocamera/status/requestSolicitudes de información de estado
Configuracióncamera/configCambios de configuración

4.4 Configurar Procesamiento de Mensajes

  1. Agregar nodo "debug" para monitorear mensajes entrantes
  2. Conectar: MQTT In → Debug
  3. Configurar el nodo debug para mostrar el mensaje completo

Paso 5: Configurar MQTT Out (Publicación)

5.1 Agregar Nodo MQTT Out

  1. Arrastre el nodo "mqtt out" al lienzo
  2. Haga doble clic para configurar
  3. Seleccionar la misma configuración de broker

5.2 Configuración de MQTT Out

Configuraciones de Publicación:

ConfiguraciónValor de ejemploDescripción
ServidorCamera MQTT BrokerMismo broker que la entrada
Temacamera/responsesTema para respuestas de la cámara
QoS0Calidad de entrega de mensajes
RetenerFalsoNo almacenar el último mensaje
NombrePublicador de respuestasIdentificador de nodo

5.3 Estructura de Temas de Respuesta

Temas de respuesta recomendados:

Tipo de RespuestaEjemplo de TemaUso
Actualizaciones de estadocamera/statusInformación de estado de la cámara
Resultadoscamera/resultsResultados de la inspección
Acuses de recibocamera/ackConfirmaciones de comandos

Paso 6: Crear Flujo de Comunicación Básico

6.1 Construir Flujo de Mensajes Salientes

Cree un flujo para publicar mensajes desde la cámara:

  1. Agregar nodo "inject" para activar mensajes
  2. Agregar nodo "function" para formatear mensajes
  3. Agregar nodo "mqtt out" para la publicación
  4. Conectar: Inject → Function → MQTT Out

6.2 Construir Flujo de Mensajes Entrantes

Crear un flujo separado para recibir mensajes:

  1. Agregar nodo "mqtt in" para suscribirse
  2. Agregar nodo "debug" para monitoreo
  3. Conectar: MQTT In → Debug

6.3 Configurar Inject Node

  1. Haga doble clic en el Inject Node
  2. Configurar configuración:
    • Nombre: "Send Test Message"
    • Payload: Timestamp
    • Topic: (dejar vacío)
  3. Haga clic en "Done"

6.4 Configurar Function Node

Formato de mensaje simple:

// Format outgoing message
msg.topic = "camera/status";
msg.payload = "Camera online - " + new Date().toISOString();
return msg;

  1. Haga doble clic en el nodo Function
  2. Copie el código anterior en la pestaña "On Message"
  3. Nombre: "Format Message"
  4. Haga clic en "Done"

6.5 Configurar MQTT Out Node

  1. Haga doble clic en el mqtt out node
  2. Seleccionar broker: Camera MQTT Broker (configurado anteriormente)
  3. Topic: (dejar vacío - establecido por el function node)
  4. Nombre: "Publish Status"
  5. Haga clic en "Done"

6.6 Configurar MQTT In Node

  1. Haga doble clic en el mqtt in node
  2. Seleccionar broker: Camera MQTT Broker
  3. Topic: camera/commands
  4. Nombre: "Command Listener"
  5. Haga clic en "Done"

6.7 Configurar Debug Node

  1. Haga doble clic en el debug node
  2. Salida: Objeto de mensaje completo
  3. Nombre: "Incoming Messages"
  4. Haga clic en "Done"

6.8 Estructura Final del Flujo

Su flujo completo debe ser:

Saliente: Inject → Function → MQTT Out Entrante: MQTT In → Debug

Paso 7: Desplegar y Probar la Configuración

7.1 Desplegar Flujo

  1. Haga clic en el botón "Deploy" (esquina superior derecha)
  2. Verificar el mensaje de éxito del despliegue
  3. Verifique los indicadores de estado de los nodos:
    • Punto verde: Conectado al broker
    • Punto rojo: Conexión fallida
    • Punto amarillo: Conectando

7.2 Prueba de Comunicación Interna

Prueba de la publicación MQTT de la cámara:

  1. Haz clic en el botón Inject para enviar un mensaje de prueba
  2. Verifique que el nodo MQTT Out muestre actividad
  3. Verifique el panel de depuración si tienes mensajes externos

7.3 Prueba Externa (Opcional)

Prueba con un cliente MQTT externo para enviar comandos a la cámara:

Usando herramientas de línea de comandos:

# Send a test command to the camera
mosquitto_pub -h 10.250.0.100 -t "camera/commands" -m "test_command"

Resultado esperado: El nodo Debug debe mostrar el mensaje entrante en el panel de depuración de Node-RED.

7.4 Verificar la Comunicación

Revise estos aspectos:

PruebaResultado EsperadoEstado
Conexión al brokerEstado verde en los nodos MQTT
Publicación de mensajesInject dispara MQTT Out con éxito
Recepción de mensajesDepuración muestra mensajes externos
ReconexiónReconexión automática tras interrupción de red

Paso 8: Solución de Problemas de MQTT

8.1 Problemas de Conexión

ProblemaSíntomasSolución
No se puede conectar al brokerIndicadores de estado en rojoVerifique la IP y el puerto del broker
Fallo de autenticaciónConexión rechazadaVerifique nombre de usuario/contraseña
Time-outs de redEstado de conexión amarilloVerifique la conectividad de la red
Bloqueo de firewallSin intento de conexiónAbrir puertos MQTT

8.2 Problemas de Mensajes

ProblemaSíntomasSolución
No se reciben mensajesDepuración no muestra nadaVerifique suscripciones de tema
Los mensajes no se publicanClientes externos no ven nadaVerifique temas de publicación
Errores de formato de mensajeFallos de análisisUsar mensajes de texto simples
Pérdida de mensajesEntrega intermitenteVerificar la conexión con el broker

8.3 Issues de rendimiento

ProblemaSíntomasSolución
Alta latenciaEntrega de mensajes retrasadaVerifique el rendimiento del broker
Caídas de conexiónReconexiones frecuentesAjuste la configuración de keep-alive
Sobrecarga de mensajesSobrecarga del brokerImplemente la limitación de mensajes

8.4 Técnicas de Depuración

Solución de problemas de forma sistemática:

  1. Verifique el estado de la conexión del broker en Node-RED
  2. Monitoree el panel de depuración de Node-RED para el flujo de mensajes
  3. Utilice mensajes de texto simples antes de datos complejos
  4. Verifique la conectividad de la red con ping
  5. Pruebe con topics básicos antes de flujos avanzados

¡Éxito! La comunicación MQTT está lista

El sistema de comunicación MQTT ahora puede:

  • Conectarse a brokers MQTT con autenticación adecuada
  • Suscribirse a topics para recibir comandos y datos
  • Publicar mensajes para actualizaciones de estado y respuestas
  • Manejar formatos de mensaje JSON para una comunicación estructurada
  • Reconectar automáticamente tras interrupciones de red
  • Soportar múltiples niveles de QoS para diferentes prioridades de mensajes

Mantenimiento en curso

Verificaciones periódicas del sistema

  • Monitorear el estado de la conexión del broker en Node-RED
  • Verificar la entrega de mensajes con mensajes de prueba
  • Revisar los registros del broker para detectar patrones de error
  • Actualizar las credenciales de autenticación según sea necesario

Monitoreo del rendimiento

  • Rastrear la latencia de mensajes y los tiempos de entrega
  • Monitorear el uso de recursos del broker para escalabilidad
  • Analizar patrones de uso de topics para optimización
  • Revisar la configuración de QoS según los requisitos reales

Próximos pasos

Después de configurar la comunicación MQTT básica:

  1. Implementar flujos de mensajería específicos para su aplicación
  2. Configurar jerarquías de topics para una comunicación organizada
  3. Agregar medidas de seguridad como cifrado TLS
  4. Integrar con sistemas externos usando protocolos MQTT establecidos
  5. Crear paneles de monitoreo para la salud del sistema

🔗 Ver También